Where once computers were employed to run specific applications, it is now commonplace for a general purpose computer to run several unrelated applications at the same time. Occasionally, there may be cause for one application to pass data to another application running on the same computer or, over a network connection, to another application running on a separate and distinct computer. Traditionally, such a data transfer required the data sending application to perform data conversion so that the data is encoded using a coding scheme that may be understood by the data receiving application.
The eXtensible Markup Language (XML) has, of late, become a standard coding scheme for such data transfers. An increasing amount of the data transferred between applications is encoded in XML. However, data conversion is still as important as ever, since different applications use different data models. The same data set can be represented in many different ways and different people have interest in different subsets of information. For example, business dashboards are applications which provide business views on specific data. Before a view of the data is presented to a user of a business dashboard, the data has to be gathered, interpreted, aggregated and filtered. In addition, security measures may dictate that different users have different authorizations on the data. Consequently, each view presented to an individual user should conform to such security measures.
The World Wide Web Consortium describes the eXtensible Stylesheet Language (XSL) as a language for expressing stylesheets. Where a “stylesheet”, a term extended from print publishing to online media, is a definition of the appearance of a document. XSL consists of three parts. The first part is XSL Transformations (XSLT), a language for transforming XML documents described in a specification available at http://www.w3. org/TR/xslt20/that is hereby incorporated herein by reference. The second part is the XML Path Language (XPath), an expression language used by XSLT to access, or to refer to, parts of an XML document. The third part is XSL Formatting Objects, an XML vocabulary for specifying formatting semantics. An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary.
When it comes to converting one XML data set to another XML data set, XSLT is one choice. XSLT, however, has performance problems. During transformation, XSLT processors hold all the data in memory as a tree structure. This tree structure can require as much as ten times more memory than was required to store the original data. Such an increase in the memory required during conversion can limit the quantity of data for which an XSLT conversion may be performed. Even at a maximum size of three or four megabytes, a XSLT conversion can be quite time-consuming, depending on the type of processing that is required.